<!DOCTYPE html>
<html lang="en">

<head>
	<meta charset="UTF-8">
	<meta http-equiv="X-UA-Compatible" content="IE=edge">
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	<title>Document</title>
</head>

<body>

	<script>

		// var a = {
		//   user: "追梦子",
		//   fn: function () {
		//     console.log(this.user);
		//   }
		// }
		// var b = a.fn;
		// var c = b.bind(a);
		// c(); 

		// function Fn() {
		//   this.user = 'hhh';
		//   return {
		//     user: this
		//   }
		// }

		// var a = new Fn()
		// console.log(a);

		// var name = "The Window";
		// var object = {
		//   name: "My Object",
		//   getNameFunc: function () {
		//     console.log(this.name);
		//     return function () {
		//       console.log(this.name);
		//       return this.name;
		//     };
		//   }
		// };
		// var _that = object.getNameFunc();
		// console.log('_that', _that());
		// console.log(this);
		// console.log(this.name);
		// console.log(object.getNameFunc()());
		// console.log(object.getNameFunc());

		// var name = "The Window";
		// var object = {
		// 	name: "My Object",
		// 	getNameFunc: function () {
		// 		var that = this;
		// 		return function () {
		// 			return that.name;
		// 		};
		// 	}
		// };
		// console.log(object.getNameFunc());
		// console.log(object.getNameFunc()());


		// let obj = {
		// 	name: '13',
		// 	foo() {
		// 		console.log(this);
		// 		setTimeout(() => {
		// 			console.log(this);
		// 		}, 100);
		// setTimeout( function () {
		// 	console.log(this);
		// }, 100);
		// 	},
		// };
		// var testFun = function () {
		// 	console.log(this);
		// };

		// obj.foo();
		// testFun();

		// function foo(a, b) {
		// 	console.log(arguments);
		// 	console.log(a, b);
		// }
		// foo(1, 2, 3, 4, 5, 6, 7, 8, 9);
		// foo(1);

		// function Bq() {
		// 	Bq.prototype.name = '123'
		// }

		// let a = new Bq();
		// console.log(a.name);



		// var A = function () { };
		// console.log('b', b);
		// A.prototype = {
		// 	n: 2,
		// 	m: 3,
		// };
		// var c = new A();
		// console.log('c', c);

		// console.log(b.n);  // 1
		// console.log(b.m);  // undefined

		// console.log(c.n);  // 2
		// console.log(c.m);  // 3

		// var F = function () { };

		// Object.prototype.a = function () {
		// 	console.log("a");
		// };

		// Function.prototype.b = function () {
		// 	console.log("b");
		// };

		// var f = new F();

		// f.a();
		// f.b();

		// F.a();
		// F.b();

		// var foo = {},
		// 	F = function () { };
		// Object.prototype.a = "value a";
		// Function.prototype.b = "value b";

		// console.log(foo.a);
		// console.log(foo.b);

		// console.log(F.a);
		// console.log(F.b);

	</script>
</body>

</html>